function removeClass(o,re) { if (!hasClass(o,re)) { return; } if (typeof re=="string") { re = new RegExp("(^|\\s)"+re+"(\\s|$)"); } o.className = o.className.replace(re,' '); };
function findParentByClass(o,re) { while (o=o.parentNode) { if (hasClass(o,re)) { return o; } } return null; }
/* Trigger a function when an element with a certain ID is loaded */
function onIdLoad(id,func,delay) {
delay = delay || 500;
var o = document.getElementById(id);
if (o==null) {
setTimeout(onIdLoad,delay,id,func,delay);
}
else {
func(o);
}
}
/* Trigger a function when something becomes non-null */
function onDefined(obj,prop,func,delay) {
delay = delay || 500;
if (!obj[prop]) {
setTimeout(onDefined,delay,obj,prop,func,delay);
}
else {
func(obj[prop]);
}
}
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
// Allow the CSS block to be split by __section:
// Only display a given __section__ if there is a user pref called 'section' that is true-ish.
// The first section is always displayed.
var actualCss = "";
var sections = css.split('__');
if (sections) {
actualCss += sections[0];
sections.splice(1).forEach(function(str,i) {
var x = str.indexOf(':');
if (x>0) {
var pref = str.substring(0,x);
var val = str.substring(x+2);
if (options && options.get(pref)) {
actualCss += val;
}
}
});
}
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = actualCss;
head.appendChild(style);
}
// Create an element and attach class name, properties and events
function el(type,cn,props,events,innerHTML) {
var o = document.createElement(type);
if (cn) { o.className=cn; }
if (props) {
for (var i in props) {
o[i] = props[i];
}
}
if (events) {
for (var i in events) {
o.addEventListener(i,events[i],false);
}
}
if (innerHTML) {
o.innerHTML = innerHTML;
}
return o;
}
function insertFirst(container,el) {
insertAtPosition(container,el,1);
}
function insertAtPosition(container,el,pos) {
if (container && container.childNodes && container.childNodes.length>pos-1) {
var comments = o.getElementsByClassName('commentable_item');
if (comments && comments.length>0) {
var c = comments[0];
// This is now a FORM object with a hidden input
if (c.elements && c.elements[2]) {
var data = JSON.parse(c.elements[2].value);
return data.target_fbid;
}
}
}
}
function time() {
return +new Date;
}
function fixStory(o) {
if (hasClass(o,classUIStory)) {
var traceBuffer = "";
var trace = function(str) {
traceBuffer+=str+". ";
}
var type = getStoryTypeId(o);
// MINIMIZE STORIES BY TYPE
if (isStoryTypeMinimized(type)) {
addClass(o,"UIStory_minimized");
if (DEBUG) { trace("Minimized by type"); }
}
// HIDE STORIES BY TYPE
if (isStoryTypeHidden(type)) {
addClass(o,"UIStory_hidden_by_type");
if (DEBUG) { trace("Hidden by type"); }
}
// HIDE OLD STORIES
// ----------------
// Facebook removed pub_time from the source, so we need to use fbid instead, and just hide stories once we've seen the latest fbid.
// We have to make the assumption that stories will get inserted in order with the most recent at the top.
var fbid = getStoryProperty(o,'fbid');
if (DEBUG) { trace("fbid="+fbid); }
if (o && o.getElementsByClassName) {
var comments = o.getElementsByClassName('feed_comments');
}
var c = null;
var count = 0;
if (comments && comments.length>0) {
c = comments[0];
if ( /view all (\d+) comments/i.test(c.innerHTML) ) {
count = +RegExp.$1;
}
else {
count = c.childNodes.length || 0;
}
if (DEBUG) { trace(count+" comments"); }
}
// Adding this class will automatically hide next siblings
if (fbid == last_seen_fbid) {
addClass(o,"last_read");
if (DEBUG) { trace("This post was the last marked as read"); }
// The last read may be in the delayed stream, so mark the whole stream as last_read also so CSS still works
var pp = o.parentNode.parentNode;
if (pp && pp.id=="pagelet_delayed_stream") {
addClass(pp,"last_read");
if (DEBUG) { trace("post is in the delayed stream!"); }
}
}
// Check to see if it has new comments
// But not if the user has disabled following of comments
if (fbid && options.get('story_data.'+fbid+'.no_comments')) {
// do nothing
if (DEBUG) { trace("Comments hidden for post"); }
}
else {
var target_fbid = getCommentsTargetFbid(o);
var stored_count_obj = options.get('story_data.'+target_fbid+'.cc');
var t = time();
var stored_count = 0;
if (stored_count_obj && typeof(stored_count_obj.c)!="undefined") {
if (DEBUG) { trace("Object is stored:" + stored_count_obj.c); }
stored_count = stored_count_obj.c
}
else {
stored_count_obj = {'c':0, 't':t};
}
if (DEBUG) { trace("Stored comment count="+stored_count); }
if (count > stored_count) {
addClass(o,"UIStory_new_comments");
// Add a new box into the comment area
if (c!=null) {
var new_count = count-stored_count;
var text = new_count+" new comment"+((new_count>1)?"s":"");
var section = el('div','ufi_section better_fb_new_comment_notif',{'innerHTML':text});
var a = el('a','better_fb_stop_comments',{'innerHTML':'mute comment alerts on this post'},{'click':function() { hideNewComments(fbid); hideStory(this); return false; } } );
var img = el('img','notifications_pushpin',{src:"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%24%00%00%00%20%08%06%00%00%00z%91%DA%8E%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%0AMiCCPPhotoshop%20ICC%20profile%00%00x%DA%9DSwX%93%F7%16%3E%DF%F7e%0FVB%D8%F0%B1%97l%81%00%22%23%AC%08%C8%10Y%A2%10%92%00a%84%10%12%40%C5%85%88%0AV%14%15%11%9CHU%C4%82%D5%0AH%9D%88%E2%A0(%B8gA%8A%88Z%8BU%5C8%EE%1F%DC%A7%B5%7Dz%EF%ED%ED%FB%D7%FB%BC%E7%9C%E7%FC%CEy%CF%0F%80%11%12%26%91%E6%A2j%009R%85%3C%3A%D8%1F%8FOH%C4%C9%BD%80%02%15H%E0%04%20%10%E6%CB%C2g%05%C5%00%00%F0%03yx~t%B0%3F%FC%01%AFo%00%02%00p%D5.%24%12%C7%E1%FF%83%BAP%26W%00%20%91%00%E0%22%12%E7%0B%01%90R%00%C8.T%C8%14%00%C8%18%00%B0S%B3d%0A%00%94%00%00ly%7CB%22%00%AA%0D%00%EC%F4I%3E%05%00%D8%A9%93%DC%17%00%D8%A2%1C%A9%08%00%8D%01%00%99(G%24%02%40%BB%00%60U%81R%2C%02%C0%C2%00%A0%AC%40%22.%04%C0%AE%01%80Y%B62G%02%80%BD%05%00v%8EX%90%0F%40%60%00%80%99B%2C%CC%00%208%02%00C%1E%13%CD%03%20L%03%A00%D2%BF%E0%A9_p%85%B8H%01%00%C0%CB%95%CD%97K%D23%14%B8%95%D0%1Aw%F2%F0%E0%E2!%E2%C2l%B1Ba%17)%10f%09%E4%22%9C%97%9B%23%13H%E7%03L%CE%0C%00%00%1A%F9%D1%C1%FE8%3F%90%E7%E6%E4%E1%E6f%E7l%EF%F4%C5%A2%FEk%F0o%22%3E!%F1%DF%FE%BC%8C%02%04%00%10N%CF%EF%DA_%E5%E5%D6%03p%C7%01%B0u%BFk%A9%5B%00%DAV%00h%DF%F9%5D3%DB%09%A0Z%0A%D0z%F9%8By8%FC%40%1E%9E%A1P%C8%3C%1D%1C%0A%0B%0B%ED%25b%A1%BD0%E3%8B%3E%FF3%E1o%E0%8B~%F6%FC%40%1E%FE%DBz%F0%00q%9A%40%99%AD%C0%A3%83%FDqanv%AER%8E%E7%CB%04B1n%F7%E7%23%FE%C7%85%7F%FD%8E)%D1%E24%B1%5C%2C%15%8A%F1X%89%B8P%22M%C7y%B9R%91D!%C9%95%E2%12%E9%7F2%F1%1F%96%FD%09%93w%0D%00%AC%86O%C0N%B6%07%B5%CBl%C0~%EE%01%02%8B%0EX%D2v%00%40~%F3-%8C%1A%0B%91%00%10g42y%F7%00%00%93%BF%F9%8F%40%2B%01%00%CD%97%A4%E3%00%00%BC%E8%18%5C%A8%94%17L%C6%08%00%00D%A0%81*%B0A%07%0C%C1%14%AC%C0%0E%9C%C1%1D%BC%C0%17%02a%06D%40%0C%24%C0%3C%10B%06%E4%80%1C%0A%A1%18%96A%19T%C0%3A%D8%04%B5%B0%03%1A%A0%11%9A%E1%10%B4%C118%0D%E7%E0%12%5C%81%EBp%17%06%60%18%9E%C2%18%BC%86%09%04A%C8%08%13a!%3A%88%11b%8E%D8%22%CE%08%17%99%8E%04%22aH4%92%80%A4%20%E9%88%14Q%22%C5%C8r%A4%02%A9Bj%91%5DH%23%F2-r%149%8D%5C%40%FA%90%DB%C8%202%8A%FC%8A%BCG1%94%81%B2Q%03%D4%02u%40%B9%A8%1F%1A%8A%C6%A0s%D1t4%0F%5D%80%96%A2k%D1%1A%B4%1E%3D%80%B6%A2%A7%D1K%E8ut%00%7D%8A%8Ec%80%D11%0Ef%8C%D9a%5C%8C%87E%60%89X%1A%26%C7%16c%E5X5V%8F5c%1DX7v%15%1B%C0%9Ea%EF%08%24%02%8B%80%13%EC%08%5E%84%10%C2l%82%90%90GXLXC%A8%25%EC%23%B4%12%BA%08W%09%83%841%C2'%22%93%A8O%B4%25z%12%F9%C4xb%3A%B1%90XF%AC%26%EE!%1E!%9E%25%5E'%0E%13_%93H%24%0E%C9%92%E4N%0A!%25%902I%0BIkH%DBH-%A4S%A4%3E%D2%10i%9CL%26%EB%90m%C9%DE%E4%08%B2%80%AC%20%97%91%B7%90%0F%90O%92%FB%C9%C3%E4%B7%14%3A%C5%88%E2L%09%A2%24R%A4%94%12J5e%3F%E5%04%A5%9F2B%99%A0%AAQ%CD%A9%9E%D4%08%AA%88%3A%9FZIm%A0vP%2FS%87%A9%134u%9A%25%CD%9B%16C%CB%A4-%A3%D5%D0%9Aigi%F7h%2F%E9t%BA%09%DD%83%1EE%97%D0%97%D2k%E8%07%E9%E7%E9%83%F4w%0C%0D%86%0D%83%C7Hb(%19k%19%7B%19%A7%18%B7%19%2F%99L%A6%05%D3%97%99%C8T0%D72%1B%99g%98%0F%98oUX*%F6*%7C%15%91%CA%12%95%3A%95V%95~%95%E7%AATUsU%3F%D5y%AA%0BT%ABU%0F%AB%5EV%7D%A6FU%B3P%E3%A9%09%D4%16%AB%D5%A9%1DU%BB%A96%AE%CERwR%8FP%CFQ_%A3%BE_%FD%82%FAc%0D%B2%86%85F%A0%86H%A3Tc%B7%C6%19%8D!%16%C62e%F1XB%D6rV%03%EB%2Ck%98Mb%5B%B2%F9%ECLv%05%FB%1Bv%2F%7BLSCs%AAf%ACf%91f%9D%E6q%CD%01%0E%C6%B1%E0%F09%D9%9CJ%CE!%CE%0D%CE%7B-%03-%3F-%B1%D6j%ADf%AD~%AD7%DAz%DA%BE%DAb%EDr%ED%16%ED%EB%DA%EFup%9D%40%9D%2C%9D%F5%3Am%3A%F7u%09%BA6%BAQ%BA%85%BA%DBu%CF%EA%3E%D3c%EBy%E9%09%F5%CA%F5%0E%E9%DD%D1G%F5m%F4%A3%F5%17%EA%EF%D6%EF%D1%1F704%086%90%19l18c%F0%CC%90c%E8k%98i%B8%D1%F0%84%E1%A8%11%CBh%BA%91%C4h%A3%D1I%A3'%B8%26%EE%87g%E35x%17%3Ef%ACo%1Cb%AC4%DEe%DCk%3Cabi2%DB%A4%C4%A4%C5%E4%BE)%CD%94k%9Af%BA%D1%B4%D3t%CC%CC%C8%2C%DC%AC%D8%AC%C9%EC%8E9%D5%9Ck%9Ea%BE%D9%BC%DB%FC%8D%85%A5E%9C%C5J%8B6%8B%C7%96%DA%96%7C%CB%05%96M%96%F7%AC%98V%3EVyV%F5V%D7%ACI%D6%5C%EB%2C%EBm%D6WlP%1BW%9B%0C%9B%3A%9B%CB%B6%A8%AD%9B%AD%C4v%9Bm%DF%14%E2%14%8F)%D2)%F5Sn%DA1%EC%FC%EC%0A%EC%9A%EC%06%ED9%F6a%F6%25%F6m%F6%CF%1D%CC%1C%12%1D%D6%3Bt%3B%7Crtu%CCvlp%BC%EB%A4%E14%C3%A9%C4%A9%C3%E9Wg%1Bg%A1s%9D%F35%17%A6K%90%CB%12%97v%97%17Sm%A7%8A%A7n%9Fz%CB%95%E5%1A%EE%BA%D2%B5%D3%F5%A3%9B%BB%9B%DC%AD%D9m%D4%DD%CC%3D%C5%7D%AB%FBM.%9B%1B%C9%5D%C3%3D%EFA%F4%F0%F7X%E2q%CC%E3%9D%A7%9B%A7%C2%F3%90%E7%2F%5Ev%5EY%5E%FB%BD%1EO%B3%9C%26%9E%D60m%C8%DB%C4%5B%E0%BD%CB%7B%60%3A%3E%3De%FA%CE%E9%03%3E%C6%3E%02%9Fz%9F%87%BE%A6%BE%22%DF%3D%BE%23~%D6~%99~%07%FC%9E%FB%3B%FA%CB%FD%8F%F8%BF%E1y%F2%16%F1N%05%60%01%C1%01%E5%01%BD%81%1A%81%B3%03k%03%1F%04%99%04%A5%075%05%8D%05%BB%06%2F%0C%3E%15B%0C%09%0DY%1Fr%93o%C0%17%F2%1B%F9c3%DCg%2C%9A%D1%15%CA%08%9D%15Z%1B%FA0%CC%26L%1E%D6%11%8E%86%CF%08%DF%10~o%A6%F9L%E9%CC%B6%08%88%E0Gl%88%B8%1Fi%19%99%17%F9%7D%14)*2%AA.%EAQ%B4Stqt%F7%2C%D6%AC%E4Y%FBg%BD%8E%F1%8F%A9%8C%B9%3B%DBj%B6rvg%ACjlRlc%EC%9B%B8%80%B8%AA%B8%81x%87%F8E%F1%97%12t%13%24%09%ED%89%E4%C4%D8%C4%3D%89%E3s%02%E7l%9A3%9C%E4%9AT%96tc%AE%E5%DC%A2%B9%17%E6%E9%CE%CB%9Ew%3CY5Y%90%7C8%85%98%12%97%B2%3F%E5%83%20BP%2F%18O%E5%A7nM%1D%13%F2%84%9B%85OE%BE%A2%8D%A2Q%B1%B7%B8J%3C%92%E6%9DV%95%F68%DD%3B%7DC%FAh%86OFu%C63%09OR%2By%91%19%92%B9%23%F3MVD%D6%DE%AC%CF%D9q%D9-9%94%9C%94%9C%A3R%0Di%96%B4%2B%D70%B7(%B7Of%2B%2B%93%0D%E4y%E6m%CA%1B%93%87%CA%F7%E4%23%F9s%F3%DB%15l%85L%D1%A3%B4R%AEP%0E%16L%2F%A8%2Bx%5B%18%5Bx%B8H%BDHZ%D43%DFf%FE%EA%F9%23%0B%82%16%7C%BD%90%B0P%B8%B0%B3%D8%B8xY%F1%E0%22%BFE%BB%16%23%8BS%17w.1%5DR%BAdxi%F0%D2%7D%CBh%CB%B2%96%FDP%E2XRU%F2jy%DC%F2%8ER%83%D2%A5%A5C%2B%82W4%95%A9%94%C9%CBn%AE%F4Z%B9c%15a%95dU%EFj%97%D5%5BV%7F*%17%95_%ACp%AC%A8%AE%F8%B0F%B8%E6%E2WN_%D5%7C%F5ym%DA%DA%DEJ%B7%CA%ED%EBH%EB%A4%EBn%AC%F7Y%BF%AFJ%BDjA%D5%D0%86%F0%0D%AD%1B%F1%8D%E5%1B_mJ%DEt%A1zj%F5%8E%CD%B4%CD%CA%CD%035a5%ED%5B%CC%B6%AC%DB%F2%A16%A3%F6z%9D%7F%5D%CBV%FD%AD%AB%B7%BE%D9%26%DA%D6%BF%DDw%7B%F3%0E%83%1D%15%3B%DE%EF%94%EC%BC%B5%2BxWk%BDE%7D%F5n%D2%EE%82%DD%8F%1Ab%1B%BA%BF%E6~%DD%B8GwO%C5%9E%8F%7B%A5%7B%07%F6E%EF%EBjtol%DC%AF%BF%BF%B2%09mR6%8D%1EH%3Ap%E5%9B%80o%DA%9B%ED%9Aw%B5pZ*%0E%C2A%E5%C1'%DF%A6%7C%7B%E3P%E8%A1%CE%C3%DC%C3%CD%DF%99%7F%B7%F5%08%EBHy%2B%D2%3A%BFu%AC-%A3m%A0%3D%A1%BD%EF%E8%8C%A3%9D%1D%5E%1DG%BE%B7%FF~%EF1%E3cu%C75%8FW%9E%A0%9D(%3D%F1%F9%E4%82%93%E3%A7d%A7%9E%9DN%3F%3D%D4%99%DCy%F7L%FC%99k%5DQ%5D%BDgC%CF%9E%3F%17t%EEL%B7_%F7%C9%F3%DE%E7%8F%5D%F0%BCp%F4%22%F7b%DB%25%B7K%AD%3D%AE%3DG~p%FD%E1H%AF%5Bo%EBe%F7%CB%EDW%3C%AEt%F4M%EB%3B%D1%EF%D3%7F%FAj%C0%D5s%D7%F8%D7.%5D%9Fy%BD%EF%C6%EC%1B%B7n%26%DD%1C%B8%25%BA%F5%F8v%F6%ED%17w%0A%EEL%DC%5Dz%8Fx%AF%FC%BE%DA%FD%EA%07%FA%0F%EA%7F%B4%FE%B1e%C0m%E0%F8%60%C0%60%CF%C3Y%0F%EF%0E%09%87%9E%FE%94%FF%D3%87%E1%D2G%CCG%D5%23F%23%8D%8F%9D%1F%1F%1B%0D%1A%BD%F2d%CE%93%E1%A7%B2%A7%13%CF%CA~V%FFy%EBs%AB%E7%DF%FD%E2%FBK%CFX%FC%D8%F0%0B%F9%8B%CF%BF%AEy%A9%F3r%EF%AB%A9%AF%3A%C7%23%C7%1F%BC%CEy%3D%F1%A6%FC%AD%CE%DB%7D%EF%B8%EF%BA%DF%C7%BD%1F%99(%FC%40%FEP%F3%D1%FAc%C7%A7%D0O%F7%3E%E7%7C%FE%FC%2F%F7%84%F3%FB%25%D2%9F3%00%00%00%04gAMA%00%00%B1%8E%7C%FBQ%93%00%00%00%20cHRM%00%00z%25%00%00%80%83%00%00%F9%FF%00%00%80%E9%00%00u0%00%00%EA%60%00%00%3A%98%00%00%17o%92_%C5F%00%00%06%9EIDATx%DA%BC%98%5Bl%1CW%19%C7%7Fs%D9Y%EF%3A%5E%C7%5D%3Bv%E3%CA6i%5D%DB%12%AEUPPH%147q%A5%60%11%9A%0A%C4%25%22%0F%20*%1A%A9RU%9E%40%81'%8AP%C4%03HI%80'%0AB%84%8B%A0*j%95%AAMi%AB%B6i%AD%A8%C46m%D3%C4%C6n%93%F5%25%F6%EE%DA%BB%DE%FB%EC%EC%9C9%3C%F8%2C%0C%5B%DF%12%1A%8E%F4%C9%3B%B3g%E7%FC%E6%FF%FF%CEw%CE%B1%26%A5D%D34%D6iM%CD%E1%F0%CF%3F%DB%DE%BEW%08Q%9E%CD%E7%93%D7VV%26%F3%8Es%11%18%01%26%00o%BD%1FK)%B9%D9%A6m%02t%EC%C7%FB%F6%9D%FD%FE%FE%FD%E08Tl%9B%85R%89%F1t%9A%97%AF_%2F%BF2%3B%3Bzuy%F9%AF%C0%D3%C0%F5%FF%07%D0%D1_%0D%0F%FF%F13%8D%8DD%82A%3A%1B%1BAJ%D040Ml%C7%E1B%3C%CEo%AF%5C%C9%3C%3B%3D%FDL%DEqN%03%FF%B8%9D%40%9D%C3%9D%9Do%3F%F5%C0%03%3B.%DE%B8%81%B4%2C%3E%19%8Dro%24%82%26%E5*%9Ca%80e1%95N%F3%D3%B1%B1%F2S%EF%BDw%C6%F5%BC'%81%DC%ED%00%028%FA%8D%DE%DE%DF%3D%D6%DBk%26%8AE%16l%1Bi%18%F4F%A3%F4D%22%EC%08%85V%E1%02%01%08%06ysv%96c%CF%3F%FF%C6L6%FB%1D)%E5%F8%CD%02%99%5B%E8%F3%9A%19%0AeZ%A3%D1h%2C%9B%E5%13%DB%B6%A1%037R)%A6%92IL%D3%A45%1CfG%7D%3D%11%C3%60ws3%C7%07%06%06%7Fp%E1%C27%81%DB%024%7C%A8%BB%3B%DA%19%0C%12%0B%87%99)%14%D0%80%88e%11%AD%AB%C3%D4uR%A5%121%DB%26bY%BC%9BH%F0%87%F7%DF%8F%01%2Fp%0BmS%A0%3B%EA%EB%1F%3C%D0%D2%C2%FC%CA%0A%12%B8%AB%BE%9E%8A%E7Qp%5D%96m%9B%8A%944Y%163%C5%22%AF%2C.r~ffl%3A%93y%14%18%BD%1D%40%DB%07%3B%3A%0EF%83A%26l%1B%C7%F3%D04%0DC%D3%D8nYH%CB%C2%D044M%E3%E4%5Bo%BD%3D%97%CF%3F%01%BC%03%94%B8%C5%A6o%F2%FD%DE%83%9D%9D%EDF%B9L%CEuWg%01%20%01!%25BJB%86%C1%D8%F22s%F9%FCY%E0%E2%FF%02%B3)P%9Di%3Ex%A8%A3%83d%3E%8F-%C4%9A%7D%02%86%C1%8B%B3%B3Y%E0%1C%1FC3%D7%AB%AE%9A%A6%05%EF%DB%B9s%A8%AB%BE%9EX%3A%8D%AB%EC%F2%B7%A0%AE%B3P%2C%F2%E6%E2%E2KR%CAk%FF%AE%25%AB%FD%B4%0D%CA%89%F4%89%BD1%90%A6i%9F%B6%02%81c%9D--%9Fz%B4%BF%FF%3E%CBq%C88%0E%B2FN%09%D4%07%02%BC8%3FO%DEq%FER%85%F0%0DV%1B%D2%07%20k%1E%B5%26%90%19%B2%AC%9F%1C%1F%1C%7C%E2%F8%FD%F7%1B%ED%40%C0qH%2C-QZ%C3%AE%EA%08%2F%CF%CF%CF%00%2F%A9%5B%D540%D4%B5%E1%03%C2%07%25%D5%A2%FC%91%CF%A6%2F%17~%F6%A7G%1Ey%FCHO%0F%24%12%E4%D2i2%B6M%C1u%D7%B4%2Bl%9A%5CN%A5%F8%7B%22qVJ%B9%A2%BE%AF%C2%04T%98*t%DF%C0%1E%20j%A2z%DF%AB%02%7D%F9%C9%87%1Ez%FCHw7%CC%CD%81%EB%D2%60%9A%E4%3D%8F%D9B%01%C7%F3%B0%0C%E3%BFL74%8D%0F%F2y%A4%94Z%0D%8C%05%84%800P%A7%AE%ABn%0B%C0%05*%EA%AF%A3%A2R%BDg%02%B456~%F5%F8%C0%00%C4%E3%E08%20%04R%08%EE%0C%850%A2Q%AEg2%AC8%0E%AE%E7a%E8%3A%3A0_(%F0%ED%BE%3E%80%13%3F%BAt%E92%F0g%A5F%1D%B0%5DE%83%BA%AE*%24%D4%C0%0E%60%AB(%A9(%02e%13%60%7B%5D%5Dk%A8%5C%86b%11*%15%1C%D7%C5%16%02!%04A%5D%A7%AF%A9%89%A2%EB%92w%1C%0AB%20%3C%8F%5D%91%08%A6%E7%F1%F5%5D%BB8%17%8B%FDp%3C%99%FC%9Bz%EBF%20%0A%B4%00%11%9FBU%CB%AA%CA%94%15H%1E%C8%AA%3E%AB%96M%C6%E3%AF%8E%C4b%83C--dK%25l!(%0A%81%E3yT%84%C0U%3B%82%AA'%E8%3A%E9r%99k%8EC%24%10%E0HW%D7%3D%E3%C9%E40%F0%3A%D0%044%2B%A8%B0o%E2H_%FET%80%A0%825%D5%FD2P4U%CF_%3Cv%FE%FC%17%CF%1D%3E%3C%D0%AC%EB%2C%96JT%3C%0F%5B%08*%9E%87%04%5C)%91%D5%F8O%D1%22'%25%9D%E10%86%AE%1F%10%9E7%A1%94%B9C%C1%04%7C%EA%F8%93%BA%E2S%C9%F6%E5%91%A8%26%DB%D2d*u%F4%D0s%CFM%BC%BA%B0%40%9DaPV%40%AEZ%22P%20%9EZ6*%9EG%C9%F3%C8%BB.I%DB%C6%93%D2%00%EE%02ZU%EE%D4Z%E5%00%05%20%05%C4%819%60%16%B8%01%24%81%0C%60%D7n%D0%DA%82%A6y%FA%5B%3D%3D_%F9%DA%DDw%D3%A0i%A4K%25%84i%E2x%1E%AE%E7%AD%DA%A8%A2%2C%04!%C3%E0%F5%C5E~%3D1%F1K%E0%5D%1F%88%EE%CB%19%1B%C8)%98e5x%C1%A7%8C%ABB%7Cd%C7%A8%AE%3F%DF%16%0E%7F%EFK%DD%DD%7B%87%BA%BA%CC%90m%E3i%1A9%C7!_%A9P%16%82%8A%B2%2Fa%DB%FCfrr!Q*%9DVIj%A8GU%AD%C9%03K%40%C2%A7D%C9W%83%FC%15%7C%CD%A5%03%E0%85%C5bq%FCj%5B%DBx%FF%C3%0F%B7%9E9q%22%13%12%C2hoh%D8V%A7%A6%7D%CEuY(%95%BC%89T%EA%9FE%D7%7DV%BD%ADQ%B3L8%0A%E2%9A%B2%A9%A0%20%E5Z%EB%98%94r%C3%FD%D0%81%7D%BBw%B7%5E%1E%1D%E5J%3C%FE%0Cputi%E9%5EU%F4%02%CA%86%25%60Q%A9Q%BB%92VgNJ%A9%93U%B6lx~%5B%0FHkjj%3A%DC%DD%DD%CD%A9S%A7%0A%C0%A4z%F8%15_%A2j%EB%AC%E2%FE%24%CE%02i%9FE%9B%1E%26%D7%DC~h%9A%D6%B8g%CF%9E%83%0D%0D%0DLMM%5D%02%A6T%5D%09%AD'%B7%0F%C8U%00%CB%CA%AA%05%A5%A6%DC%CAAr%3D%85%0E%0C%0F%0F%EF%9C%9E%9E%26%97%CB%3D%0D%7C%A8%94%A9%E6GY%A9%A0%FB%94%AAZ%B4%A2%F2%25%AE%3E%97%B7%0A%B3.Pss%F3%17%FA%FB%FB9y%F2d%1A%18%03%EET%955%09%C4T%EE%C8%9A%24%AE%5D%12*7%03%B2%D1%2C%0B%0F%0D%0D%ED%CFf%B3%8C%8C%8C%BC%03%DC%A3%DE%FE%03e%5DF%0DV%BB%CF%E1V%00%B6%F2%1F%8ApGG%C7%87%7D%7D%7D%128%03%7CN%E5%8E%BE%DE%EF%3F%CEX%EB(%DD%00%FC%5E%25%E4w%A5%94%E5%DA%CD%D9%AD%9C%D9%B7%DA%FE5%00%9F%1B%AC%F1%FAw%1F%17%00%00%00%00IEND%AEB%60%82"});
document.body.appendChild(img);
// Append a message to highlight the notifications
if (options && options.get('highlight_pin_notifications')) {
$$('presence_menu_content_wrapper',function(){
insertFirst( this, message('Your notifications will now be pinned up here for easy reading and access. This can be turned off in the Options',function(){ options.set('highlight_pin_notifications',false); options.save();}) );
if (options && options.get('show_friend_tracker')) {
// A "Friend Tracker" sidebar will notify if anyone unfriended you
// Some idesa taken from http://userscripts.org/scripts/review/40027
insertAtPosition( o, createSidebarSection({ title:'Friend Tracker',content:'Loading...',id:'better_fb_friends_pagelet'} ), 3 );
// Highlight the added sidebar section
if (options && options.get('highlight_friend_tracker')) {
insertFirst( document.getElementById('better_fb_friends_pagelet_notification'), message('If anyone unfriends you, you will see it here! This sidebar section can be disabled in the options.',function(){ options.set('highlight_friend_tracker',false); options.save();}) );
if (options && options.get('show_group_activity')) {
// A "Groups Activity" sidebar will alert you to groups activity
insertAtPosition( o, createSidebarSection({ title:'My Group Activity',content:'Loading...',id:'better_fb_groups_pagelet'} ), 4 );
// Highlight the added sidebar section
if (options && options.get('highlight_group_activity')) {
insertFirst( document.getElementById('better_fb_groups_pagelet_notification'), message('This new sidebar will alert you to new posts, members, etc in groups that you are a member of.',function(){ options.set('highlight_group_activity',false); options.save();}) );
}
var t = time();
var i = document.createElement("iframe");
i.src = "http://www.facebook.com/groups.php";
i.style.display="none";
i.addEventListener('load',function(e) {
var d = e.target.contentDocument;
var html = "";
var td = d.getElementsByClassName("group_list")[1];
$$("group",function() {
var updates = this.getElementsByClassName('updates');
if (updates && updates.length>0) {
var update = updates[0];
var h4 = update.parentNode.parentNode.parentNode.firstChild;
html += '<h4 class="bf_group_h4">'+h4.innerHTML+'</h4><span class="bf_group_update">'+update.innerHTML+'</span>';
<p>Better Facebook has added this control panel!</p>
<p style="font-weight:bold;">Read these notes before continuing, so you know what Better Facebook can do for you!</p>
<p>Click 'Mark All Read' once you have read every story on this page. The stories will then be hidden the next time you view the page. But don't worry - if any new comments are added they will show back up! This will let you keep track of conversations that you otherwise might have missed.</p>
<p>You can always go back and see all the hidden stories by clicking 'Show All', then hide them again by clicking 'Hide Read'.</p>
<p>You can change options for your Facebook page by clicking the 'Options' button!</p>
<p><u>This functionality should only be used on the Live Feed!</u> Occasionally this control panel will be visible on the News Feed, but it should hide itself. If you navigate to other pages (like Inbox, etc) then back to home by clicking the facebook logo or Home link, this control panel may disappear. It will be visible again when you load the page again.</p>
<b>Support Development! Make a donation with PayPal: <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9627367" target="_blank"><img border="0" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"></a></b>
<br>
<br>
If you like Facebook, you might get a chuckle out of <b><a href="http://ObnoxiousFacebookHabits.com" target="_blank">ObnoxiousFacebookHabits.com</a></b>!
var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}